package it.fantacalcio.struts.action.amministrazione.giocatore;

import it.fantacalcio.model.Giocatore;
import it.fantacalcio.model.User;
import it.fantacalcio.spring.service.MyServiceFactory;
import it.fantacalcio.struts.form.GiocatoreForm;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class PrepareListGiocatoreAction extends Action {
	
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		
		User userInSession = (User) request.getSession().getAttribute("userInSession");
		if(userInSession==null || userInSession.getAttivo().equals("NO") ){
			return mapping.findForward("noninsession");
		}
		
		GiocatoreForm giocatoreForm = (GiocatoreForm) form;
		List<Giocatore> listaGiocatore = new ArrayList<Giocatore>();
		String pagina = request.getParameter("pagina");
		try{
			if(pagina != null && pagina.equals("ricerca")){
				// metodo di ricerca personalizzato
				Giocatore giocatore = new Giocatore();
				BeanUtils.copyProperties(giocatore, giocatoreForm);
				if(giocatoreForm.getIdSquadra()!=null){
					giocatore.setSquadra(MyServiceFactory.getSquadraService().get(giocatoreForm.getIdSquadra()));
				}
				Integer rangeValore = Integer.parseInt((String) request.getParameter("rangeValore"));
				listaGiocatore = MyServiceFactory.getGiocatoreService().search(giocatore, rangeValore);
			}else{
				listaGiocatore = MyServiceFactory.getGiocatoreService().list();
			}
		}catch (Exception e) {
			e.printStackTrace();
			return mapping.findForward("error");
		}
		request.setAttribute("listaGiocatore", listaGiocatore);
		return mapping.findForward("lista");
	}

}
